package com.cn.web.service;

import java.util.List;
import java.util.Map;

import com.cn.web.entity.BaseEntity;


/**
 * MyBatis 基础接口
 * 
 * @author love
 * @param <T> 处理的Entity对象
 */
public interface BaseService<T extends BaseEntity> {
	
	void setBaseMapper();
	/**
	 * Insert语句
	 * 
	 * @param entity entity实体对象
	 * @return 影响条数
	 */
	public int insert(T entity);
	
	/**
	 * Update语句
	 * 
	 * @param entity entity实体对象
	 * @return 影响条数
	 */
	public int update(T entity);
	
	/**
	 * 逻辑删除，更新 record_status（记录状态）为0（失效）
	 * 
	 * @param entity entity实体对象
	 * @return 影响条数
	 */
	public int delete(T entity);
	
	/**
	 * 检索，根据ID检索
	 * @param id 关键字
	 * @param entityClass entity对象类型
	 * @return entity实体Map
	 */
	public Map<?, ?> selectByKey(long id,Class<T> entityClass);
	
	/**
	 * 检索，根据entity对象以及检索条件检索
	 * 
	 * @param entity entity实体对象
	 * @return entity实体Map的List组合
	 */
	public List<Map> selectByParams(T entity);
	
	/**
	 * 逻辑删除，更新 record_status（记录状态）为0（失效）
	 * 
	 * @param entity entity实体对象
	 * @return 影响条数
	 */
	public void deleteByIdInBatch(List<String> asList, T deleteEntity);
}
